// 入口文件（第一个执行程序所在的文件）
console.log( '入口文件...' );

// import命令，用于导入某个模块的接口/功能
// 注意：import命令有提升的效果！

/* // 场景1
import {fn1} from './module1.js';
import {fn2} from './module2.js';
fn1(2,3);
fn2(7,4); */


/* // 场景2
import {name,sex,age,say} from './module1.js';
console.log( name );
console.log( sex );
console.log( age );
say(); */


/* // 场景3
import {age,name,sex,say} from './module1.js';
console.log( name );
console.log( sex );
console.log( age );
say();
 */


/* // 场景4
import {fn1,fn2,fn3} from './module1.js';
fn1();
fn2();
fn3(); */


/* // 场景5
// 使用 as 关键字，修改导入的变量名称
import {name as n,sex as s,age as a,say} from './module1.js';
console.log( n,a,s );
say();
console.log( age );// 报错 */


/* // 场景6
// import加载到的num,obj是一个常量
import {num,obj} from './module1.js';
// num = 456;// 报错
obj.sex = '妖';
console.log( obj.sex ); */


/* // 场景7
// 同一个模块可以import多次，但是只有第一次会被执行
// 只有加载模块的默认输出时，可以不需要写在{}中
// import fn from './module1.js';
// import {a,b} from './module1.js';
// 或者：
import fn,{a,b} from './module1.js';
fn();
console.log( a,b ); */


/* // 场景8
// import obj,{name,age,sex,say} from './module1.js';
// 使用*和as一次加载模块所有内容
import * as obj from './module1.js';
console.log( obj );// （包含正常的输出和默认输出）
console.log( obj.name );// '王五'
console.log( obj.default.name );// '马六' */


/* // 场景9
// import加载的模块内容是动态的
import {num} from './module1.js';
console.log( num );// 123
setTimeout(()=>{
    console.log( num );// 456
},2000); */


/* // 场景10
// 在模块内部，全局的this指向undefined，不会指向window对象
import {test} from './module1.js';
console.log( this );// undefined
test(); */


/* // 场景11
// 不需要加载模块任何内容，只执行模块
import './module1.js'; */
